package com.company.oa.hr.service.employee;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.company.oa.hr.dto.employee.EmployeeDTO;
import com.company.oa.hr.entity.employee.Employee;
import org.springframework.web.multipart.MultipartFile;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface EmployeeService extends IService<Employee> {
    
    /**
     * 分页查询员工列表
     */
    IPage<Map<String, Object>> getEmployeePage(int page, int size, Employee employee);
    
    /**
     * 创建员工
     */
    boolean createEmployee(EmployeeDTO employeeDTO, Long creatorId);
    
    /**
     * 更新员工信息
     */
    boolean updateEmployee(EmployeeDTO employeeDTO);
    
    /**
     * 删除员工
     */
    boolean deleteEmployee(Long id);
    
    /**
     * 批量导入员工
     */
    Map<String, Object> importEmployees(MultipartFile file, Long creatorId);
    
    /**
     * 导出员工信息
     */
    byte[] exportEmployees(List<Long> employeeIds);
    
    /**
     * 获取员工详情
     */
    Map<String, Object> getEmployeeDetail(Long id);
    
    /**
     * 员工离职
     */
    boolean employeeResign(Long id, String reason, Date resignDate);
} 